Google Cloud Platform‎
In this section we'll look at a Google Cloud Platform‎ icon set https://github.com/Crashedmind/PlantUML-icons-GCP.
PlantUML will access it directly from this repository (It is not part of PlantUML Stdlib.)
This a Type 2 PlantUML stdlib per
PlantUML Stdlib Overview:The original icon set is from https://cloud.google.com/icons (which says "We are currently in the process of updating our product icon set.")
Original
This diagram is from https://cloud.google.com/blog/products/gcp/brick-by-brick-learn-gcp-by-setting-up-a-minecraft-server
PlantUML Equivalent

The icons could be put into coloured boxes as shown in
Create Real Life AWS Diagrams
Find icons
We can see all the GCP icons here: https://github.com/Crashedmind/PlantUML-icons-GCP/blob/master/Symbols.md.

Play
Press to play around with this diagram source online.
Source
@startuml
!define GCPPuml https://raw.githubusercontent.com/Crashedmind/PlantUML-icons-GCP/master/dist
!include GCPPuml/GCPCommon.puml
!include GCPPuml/AI_and_Machine_Learning/all.puml
!include GCPPuml/API_Management/all.puml
!include GCPPuml/Compute/all.puml
!include GCPPuml/Databases/all.puml
listsprites
@enduml
Gather the icons we need
In addition to the GCP icons, we need:
-
users, clients, mobile icons; we can use the awslib for these
-
timer: we can use material stdlib for these
- I used
GitHub File Finderto search for "timer"
- I used

Play
Press to play around with this diagram source online.
Source
@startuml
!define GCPPuml https://raw.githubusercontent.com/Crashedmind/PlantUML-icons-GCP/master/dist
!include GCPPuml/GCPCommon.puml
!include GCPPuml/Compute/Cloud_Functions.puml
!include GCPPuml/Networking/Cloud_Firewall_Rules.puml
!include GCPPuml/Compute/Compute_Engine.puml
!include GCPPuml/Storage/Cloud_Storage.puml
/'
The other icons will need to come from other stdlib libraries: backup, users, clients.
'/
!include <awslib/AWSCommon>
!include <awslib/AWSSimplified.puml>
!include <awslib/Compute/all.puml>
!include <awslib/mobile/all.puml>
!include <awslib/general/all.puml>
Users(Users, "Friends", " ")
Mobile(Mobile, "", " ")
Client(Client, "Kid / Owner", " ")
Client(ClientMinecraft, "", " ")
Cloud_Functions(Cloud_FunctionsStart, "Start Server", "Cloud Functions")
Cloud_Functions(Cloud_FunctionsStop, "Stop Server", "Cloud Functions")
Cloud_Functions(Cloud_FunctionAdd, "Add a Friend", "Cloud Functions")
Compute_Engine(Compute_Engine, "MineCraft Server", "Compute Engine")
Cloud_Storage(Cloud_Storage, "MineCraft Backups", "Cloud Storage")
Cloud_Firewall_Rules(Cloud_Firewall_Rules_Starter,"Minecraft Backups", "Cloud Firewall Rules")
Cloud_Firewall_Rules(Cloud_Firewall_Rules_Friend,"Minecraft Backups", "Cloud Firewall Rules")
@enduml
Connect The Icons

In this case, we took an icon from a different stdlib library (material) and wrapped it in our template so it looks consistent with the other icons.
We can take a sprite from any sprite library and apply a selected library styling.
In this case, we took a sprite "ma_timer" from a different stdlib (material).
We used the macros from the GCP library to color and style the icon to match other GCP icons.
- EntityColoring("Backup")
- Entity("Backup", "Backup","Cron Task", "darkgrey", "ma_timer", "Backup")
These macros can be found in https://github.com/Crashedmind/PlantUML-icons-GCP/blob/master/source/GCPCommon.puml
"ma_timer" is not a Google service so we don't colour it blue.
Alternatively, we could write the style at a lower level but that's more work e.g.
'rectangle "==Backupn MA_TIMER(darkgreen)n//<size:12>[Cron Task]</size>// " as Backup
Play
Press to play around with this diagram source online.
Source
@startuml
!define GCPPuml https://raw.githubusercontent.com/Crashedmind/PlantUML-icons-GCP/master/dist
!include GCPPuml/GCPCommon.puml
!include GCPPuml/Compute/Cloud_Functions.puml
!include GCPPuml/Networking/Cloud_Firewall_Rules.puml
!include GCPPuml/Compute/Compute_Engine.puml
!include GCPPuml/Storage/Cloud_Storage.puml
/'
The other icons will need to come from other stdlib libraries: backup, users, clients.
'/
!include <awslib/AWSCommon>
!include <awslib/AWSSimplified.puml>
!include <awslib/Compute/all.puml>
!include <awslib/mobile/all.puml>
!include <awslib/general/all.puml>
!include <material/common>
!include <material/timer.puml>
'skinparam linetype polyline
skinparam linetype ortho
'top to bottom direction
package "Kid / Owner" {
Users(Users, "Friends", " ")
Client(Client, "Kid / Owner", " ")
}
package "MinecraftClients" {
Client(ClientMinecraft, "", " ")
Mobile(Mobile, "", " ")
}
package "Minecraft Project" {
together {
Cloud_Functions(Cloud_FunctionsStart, "Start Server", "Cloud Functions")
Cloud_Functions(Cloud_FunctionsStop, "Stop Server", "Cloud Functions")
Cloud_Functions(Cloud_FunctionAdd, "Add a Friend", "Cloud Functions")
}
Compute_Engine(Compute_Engine, "MineCraft Server", "Compute Engine")
Cloud_Storage(Cloud_Storage, "MineCraft Backups", "Cloud Storage")
together {
Cloud_Firewall_Rules(Cloud_Firewall_Rules_Starter,"Starter FW Entries", "Cloud Firewall Rules")
Cloud_Firewall_Rules(Cloud_Firewall_Rules_Friend,"Friend FW Entries", "Cloud Firewall Rules")
}
'https://github.com/Crashedmind/PlantUML-icons-GCP/blob/master/source/GCPCommon.puml
'rectangle "==Backup\n MA_TIMER(darkgreen)\n//<size:12>[Cron Task]</size>// " as Backup
EntityColoring("Backup")
Entity("Backup", "Backup","Cron Task", "darkgrey", "ma_timer", "Backup")
}
Cloud_FunctionsStart -[hidden]d-> Cloud_FunctionsStop
Cloud_FunctionsStop -[hidden]d-> Cloud_FunctionAdd
Cloud_FunctionsStart -d-> Cloud_Firewall_Rules_Starter
Cloud_FunctionAdd -d-> Cloud_Firewall_Rules_Friend
Cloud_Firewall_Rules_Friend -[hidden]d-> Cloud_Firewall_Rules_Starter
Cloud_FunctionsStart -> Compute_Engine
Cloud_FunctionsStop -> Compute_Engine
Compute_Engine -d-> Cloud_Storage
Client -r-> Cloud_FunctionsStart
Client -r-> Cloud_FunctionsStop
Users -r-> Cloud_FunctionAdd
ClientMinecraft -r-> Cloud_Firewall_Rules_Friend
Backup -u-> Compute_Engine
@enduml